package com.springboot_shopping.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@TableName("t_order")
public class Order {

    // 订单状态常量
    public static final int STATUS_UNPAID = 1;    // 待付款
    public static final int STATUS_PAID = 2;      // 已付款/待发货
    public static final int STATUS_SHIPPED = 3;   // 已发货
    public static final int STATUS_COMPLETED = 4; // 已完成
    public static final int STATUS_CANCELLED = 5; // 已取消



    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    // 订单号（使用时间戳+随机数生成）
    private String orderNo;

    // 下单时间
    private Date createTime;

    // 更新时间
    private Date updateTime;

    // 收货地址
    private String address;

    // 收货人名称
    private String consignee;

    // 收货人电话
    private String phone;

    // 总金额
    private BigDecimal totalPrice;

    // 支付时间
    private Date payTime;

    // 支付方式（1-微信，2-支付宝，3-银行卡）
    private Integer payType;

    // 订单状态（1-待付款，2-待发货，3-运输中，4-已完成，5-已取消）
    private Integer status;

    // 用户ID（关联t_user表）
    private Integer userId;

    // 订单明细（一对多关联）
    @TableField(exist = false)
    private List<com.springboot_shopping.entity.OrderItem> orderItems;

    // 地址详情（关联t_useraddress表）
    @TableField(exist = false)
    private UserAddress userAddress;
}
